package visual

import (
	"errors"
	"cgs-server/server"
	"cgs-server/server/base"
	"cgs-server/server/model"
)

type CgsFileRepository interface {
	base.Repository

	SaveFile(mdl *model.DataUserModel) error
}

func NewCgsFileRepository() CgsFileRepository {
	return &cgsFileRepository{base.RepositoryStruct{
		CollectionName: server.CgsFileCollectionName,
	}}
}

type cgsFileRepository struct {
	base.RepositoryStruct
}

func (c *cgsFileRepository) SaveFile(mdl *model.DataUserModel) error {
	if cgsFile, ok := mdl.Data.(*CgsFile); ok {
		if err := c.CheckDB(); err != nil {
			return err
		}
		cgsFile.ResolveEntity(cgsFile, mdl.User)
		_, err := c.Mongo.InsertOne(c.CollectionName, cgsFile)
		return err
	} else {
		return errors.New("CgsFile type error")
	}
}
